# 並列ステート

## 説明

[並列ステート]を使用して、重複したデータ アイテム間の比較分析（例えば、バスケット解析目的）を行えます。選択状態の場合、選択の組み合わせを保持します。

QlikView の開発者は QlikView ドキュメントに複数の状態を作成し、ドキュメントの特定のオブジェクトにこれらの状態を適用できます。エンド ユーザーはこれらのオブジェクト (サーバー オブジェクト) のコピーを作成し、それらのオブジェクトに異なるステートを設定することが可能です。

[分離設定] と [並列ステート] の最も重要な違いは、特定の状態が設定されたオブジェクトはすべて、その状態で行われた選択の影響を受けるということです。特定のステートが設定されたオブジェクトは、他のステートにおける選択の影響を受けません。

[並列ステート]は、ロード スクリプトでは使用できません。

情報メモ[並列ステート] 機能は、QlikView デベロッパーによって有効化されて、慎重に使用されなければなりません。なぜなら、並列ステートに、オブジェクトや数式が存在することを示す自動オンスクリーン表示がないため、エンドユーザーに多大な混乱を引き起こす可能性があるからです。QlikView の開発者は StateName() 関数を使用してこの情報をエンド ユーザーに提供できます。

情報メモ[並列ステート] 選択の視覚化は、データがセクション アクセスやデータ削減の下にある場合には失敗することがあります。[並列ステート] 選択は、セクション アクセスで QlikView ドキュメントを消費しているユーザーがデータにアクセスできない場合には視覚化できません。

## 並列ステートの設定

以下を行い、並列ステートを設定して有効にしてください。

1. ドキュメント プロパティで [並列ステート...] をクリックします。基本設定] タブ内) をクリックします。  
   [並列ステート] ダイアログが開きます。
2. [追加]をクリックして、ステートを多数作成し、それらに名前を設定します。その名前は、ステートの識別子として参照されます。
3. [OK] をクリックしてダイアログを閉じます。

これで、QlikView デベロッパーは、スクリーン オブジェクト内から、新規の[並列ステート]を作成することができます。

QlikView Server から QlikView ドキュメントにアクセスするエンド ユーザーは、[並列ステート] を利用できますが [並列ステート] を作成することはできません。

## ステートをオブジェクトに割り当てる

以下を行い、ステートをオブジェクトに割り当ててください：

1. [プロパティ] ダイアログを開き、[基本設定] タブを選択します。
2. オブジェクトに使用したいステートの識別子に [並列ステート]を設定します。

他のオブジェクトが同じステートに設定されない限り、オブジェクトは、選択の条件により、そのオブジェクトは、ドキュメントの残りのオブジェクトに影響されません。

[初期ステート] と [継承済み] の 2 つのステートは常に使用できます。初期ステートは QlikView で最も頻繁に使用されるステートで、$ で表現されます。QlikView ドキュメントは常に [初期ステート] にあります。オブジェクトはシートやコンテナといった上位レベルのオブジェクトからステートを継承できます。つまりステートは、ドキュメント - シート - シート オブジェクト。シートとシート オブジェクトは、QlikView の開発者が無効にしない限り、常に継承済みステートになります。

## 並列ステートの比較

同じオブジェクトの2つのステートを比較することができます。例えば、set 分析を使用している数式のステートを割り当てるにことにより、同じ軸を持つデータの両方のステートを表示するために、折れ線グラフを作成することができます。

状態を定義した場合 Group1 および Group2これら 2 つの数式を折れ線グラフで表示することにより、グループの項目 Adj.Closeの平均を比較できます。

`Avg({[Group1]} [Adj.Close])`

`Avg({[Group2]} [Adj.Close])`

## 並列ステート使用時の論理的な動作

[クリア] ボタンはすべてのステートに影響します。   
Inter Explorer プラグインでは、メニュー項目が、特定のステートの選択をクリアすることができるクリア ボタンのドロップダウン メニューに追加されます。このメニューは、Ajax クライアントでは利用できませんが、特定のステートで、クリアのアクションと関連付けられたアクション ボタンを作成することにより、同じ機能を実現できます。

[元に戻す] と [やり直し] ボタンはすべてのステートに影響します。特定のステートにおいて、元に戻したりやり直したりする機能はありません。

[ロック] と [アンロック] ボタンはすべてのステートに影響します。これらのボタンで特定のステートをロック/アンロックすることはできません。特定のステートにあるリスト ボックスを右クリックして表示されるメニューを使用し、ステートの特定項目をロックすることが可能です。

[選択] メニューのメニュー項目はすべてのステートに適用されます。このメニューには特定のステートに影響する機能はありません。

[並列ステート] はリンク オブジェクトで使用できます。オブジェクトのインスタンスすべてにそのステートが適用されます。リンク オブジェクトでは、リンクするオブジェクトのひとつのステートを変更すると、その他のオブジェクトも同じステートになります。

情報メモトリガーはすべてのステートで発生します。

アクションは特定のステートで発生するように設定できます。[マクロの実行] アクションは例外となります。特定のステートで起動するように設定できますが、マクロはすべてのステートで発生します。

存在しないステート (開発者が削除したステート) が設定されたオブジェクトは、[並列ステート] ドロップダウンを介して初期ステートに戻ります。ここには以下のような情報が表示されます。   
`AlternateStateName <unavailable>`

情報メモ

State 引数のある項目関数は、並列ステートと一緒にのみ使用できます。

[項目関数](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/field-functions-charts.htm)

### 並列ステートの変数

変数を展開するときに使用するステートを指定できます。特定のステートでの変更は、別のステートで展開される変数値には影響しません。ステートを指定しない場合、変数はデフォルトのステートで展開されます。

`MyState` という名前のステートと `vMyVar` という名前の変数がある場合:

* `$(vMyVar)` は、変数をデフォルトのステートで展開します。
* `$({MyState} vMyVar)` は、変数を `MyState` のステートで展開します。

## 詳細を見る

* [set 分析および set 数式](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)